using System;
using System.Collections.Generic;
using System.Xml.Serialization;

using DC2010.Objects.Base;
using DC2010.Objects.Common;

namespace DC2010.Objects
{
    [Serializable]
    public class CreatureAIFlags : ICloneable
    {
        [XmlAttribute]
        public bool CanAttack { get; set; }

        [XmlAttribute]
        public bool CanCastSpell { get; set; }

		[XmlAttribute]
        public bool CanDematerialize { get; set; }
	
        [XmlAttribute]
        public bool CanUsePotions { get; set; }
	
        [XmlAttribute]
        public bool CanMove { get; set; }

        [XmlAttribute]
        public bool CanOperateDoors { get; set; }
		
	    [XmlAttribute]
        public bool CanPassClosedDoors { get; set; }
	
        [XmlAttribute]
        public bool CanPickup { get; set; }
	
        [XmlAttribute]
        public bool CanSteal { get; set; }
	
        [XmlAttribute]
        public bool CanTeleport{ get; set; }
	
        [XmlAttribute]
        public bool CanThrow { get; set; }
	
        [XmlAttribute]
        public bool CanUseActions { get; set; }
	
        [XmlAttribute]
        public bool CanUsePits { get; set; }
	
        [XmlAttribute]
        public bool CanUseStairs { get; set; }
		
		/// <summary>
		/// Monster can attack from front, back and side positions. 
		/// </summary>
        [XmlAttribute]
        public bool CanAttackFromAllSides { get; set; }
		
	
		
		public CreatureAIFlags()
		{
		}
		
        public object Clone()
        {
            return this.MemberwiseClone();
        }
	}
}